import 'package:example/models/db/database_helper.dart';
import 'package:example/models/todo_entity.dart';
import 'package:get/get.dart';
import 'package:getx_scaffold_ohos/getx_scaffold_ohos.dart';

class TodoController extends GetxController with BaseControllerMixin {
  TodoDao dao = TodoDao();
  List<TodoEntity> list = [];

  @override
  void onReady() {
    super.onReady();
    refreshTodos();
  }

  void refreshTodos() async {
    list = await dao.getTodos();
    updateUi();
  }

  void deleteTodo(TodoEntity todo) async {
    await dao.deleteTodo(todo.id ?? 0);
    refreshTodos();
  }

  Future<void> updateTodo(TodoEntity todo) async {
    await dao.updateTodo(todo);
    refreshTodos();
  }

  Future<void> addTodo(TodoEntity todo) async {
    await dao.insertTodo(todo);
    refreshTodos();
  }

  @override
  void onClose() {
    super.onClose();
  }

  @override
  String get builderId => 'todo';
}
